package Usuarios;

/* @author Antonio  */

import Conexion.ArchivodeConexion;
import java.sql.Statement;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Time;
import java.util.logging.Level;
import java.util.logging.Logger;

public class ProcsUsuarios {
    java.sql.Connection con = null;    
    java.sql.ResultSet rs = null ;
    ArchivodeConexion leer;
    String server=null;
    String bd=null;
    String user=null;
    String pass=null;
    
    public ProcsUsuarios()
    {
         try{
            con = DriverManager.getConnection("jdbc:mysql://" + "localhost" + "/" + "bdtienda" ,"root","");
        }
        catch (SQLException ex){}
    }   
    
    public java.sql.ResultSet Login(String Nombre) throws SQLException
    {
        java.sql.ResultSet rs = null;
        Statement cs = con.createStatement();
        rs = cs.executeQuery("SELECT NombreUsuario, Contraseña, Empleado_idEmpleado FROM usuario WHERE NombreUsuario = '" + Nombre +"'");
        return rs;
    }
    
    public java.sql.ResultSet MostrarEmpleado(int Id) throws SQLException
    {
        java.sql.ResultSet rs = null;
        Statement cs = con.createStatement();
        rs = cs.executeQuery("SELECT Nombre, Direccion, Telefono, Tienda_idTienda FROM empleado WHERE idEmpleado = '" + Id +"'");
        return rs;
    }
    
    public java.sql.ResultSet MostrarEmpleadoTodos() throws SQLException
    {
        java.sql.ResultSet rs = null;
        Statement cs = con.createStatement();
        rs = cs.executeQuery("SELECT Nombre, idEmpleado FROM empleado ");
        return rs;
    }
    
    public java.sql.ResultSet FindIDEmpleado(String Name) throws SQLException
    {
        java.sql.ResultSet rs = null;
        Statement cs = con.createStatement();
        rs = cs.executeQuery("SELECT idEmpleado FROM empleado WHERE Nombre = '" + Name +"'");
        return rs;
    }
    
    public java.sql.ResultSet StatusCheck(int Id) throws SQLException
    {
        String a;
        java.sql.ResultSet rs = null;
        Statement cs = con.createStatement();
        rs = cs.executeQuery("SELECT habilitado FROM empleado WHERE idEmpleado = '" + Id +"'");        
        return rs;
    }
    
    public java.sql.ResultSet MostrarUsuario(int Id) throws SQLException
    {
        java.sql.ResultSet rs = null;
        Statement cs = con.createStatement();
        rs = cs.executeQuery("SELECT NombreUsuario, Rol FROM usuario WHERE Empleado_idEmpleado = '" + Id +"'");
        return rs;
    }
    
    public void CrearEmpleado(String Nombre, String Direccion, String Telefono, int Tienda)
    {                
        try {
            java.sql.CallableStatement cs = con.prepareCall("{call IngresoEmpleado('" + Nombre + "','" + Direccion + "','" + Telefono + "'," + Tienda + " )}");
            java.sql.Statement stmt  = con.createStatement();
            java.sql.ResultSet rs = cs.executeQuery();
        } catch (SQLException ex) {            
            Logger.getLogger(ProcsUsuarios.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    public void HabilitaEmpleado(String id)
    {                
        try {
            java.sql.CallableStatement cs = con.prepareCall("{call HabilitaEmpleado('" + Integer.parseInt(id) + "' )}");
            java.sql.Statement stmt  = con.createStatement();
            java.sql.ResultSet rs = cs.executeQuery();
        } catch (SQLException ex) {            
            Logger.getLogger(ProcsUsuarios.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    public void DeshabilitaEmpleado(String id)
    {                
        try {
            java.sql.CallableStatement cs = con.prepareCall("{call DesabilitaEmpleado('" + Integer.parseInt(id) + "' )}");
            java.sql.Statement stmt  = con.createStatement();
            java.sql.ResultSet rs = cs.executeQuery();
        } catch (SQLException ex) {            
            Logger.getLogger(ProcsUsuarios.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    public void ModificaEmpleado(int id, String Nombre, String Direccion, String Telefono, int Tienda)
    {
        try {
            java.sql.CallableStatement cs = con.prepareCall("{call ModificacionEmpleado('" + id + "','" + Nombre + "','" + Direccion + "','" + Telefono + "'," + Tienda + " )}");
            java.sql.Statement stmt  = con.createStatement();
            java.sql.ResultSet rs = cs.executeQuery();
        } catch (SQLException ex) {            
            Logger.getLogger(ProcsUsuarios.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
   
    public void CrearUsuario(String Nombre, String Clave, int id, String Rol)
    {
        try {
            Clave = String.valueOf(Clave.hashCode());
            java.sql.CallableStatement cs = con.prepareCall("{call IngresoUsuario('" + Nombre + "','" + Clave + "','" + id + "','" + Rol + "' )}");
            java.sql.Statement stmt  = con.createStatement();
            java.sql.ResultSet rs = cs.executeQuery();
        } catch (SQLException ex) {
            Logger.getLogger(ProcsUsuarios.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    public void EliminarUsuario(int idUsuario)
    {
        try {
            java.sql.CallableStatement cs = con.prepareCall("{call EliminacionUsuario('" + idUsuario + "' )}");
            java.sql.Statement stmt  = con.createStatement();
            java.sql.ResultSet rs = cs.executeQuery();
        } catch (SQLException ex) {
            Logger.getLogger(ProcsUsuarios.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    public void ModificaUsuario(int id, String User, String Rol)
    {
        try {
            java.sql.CallableStatement cs = con.prepareCall("{call ModificacionUsuario('" + id + "','" + User + "','" + Rol + "')}");
            java.sql.Statement stmt  = con.createStatement();
            java.sql.ResultSet rs = cs.executeQuery();
        } catch (SQLException ex) {            
            Logger.getLogger(ProcsUsuarios.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    public void ModificaPassUsuario(int id, String Pass)
    {
        try {
            java.sql.CallableStatement cs = con.prepareCall("{call ModificacionPassUsuario('" + id + "','" + Pass.hashCode() + "')}");
            java.sql.Statement stmt  = con.createStatement();
            java.sql.ResultSet rs = cs.executeQuery();
        } catch (SQLException ex) {            
            Logger.getLogger(ProcsUsuarios.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    public java.sql.ResultSet CantidadUsuarios() throws SQLException
    {        
        java.sql.ResultSet rs = null;
        Statement cs = con.createStatement();
        rs = cs.executeQuery("SELECT Count(*) as Cantidad FROM usuario '" + "'");        
        return rs;
    }
    
    public void CrearHorario(String Hora1, String Hora2, String Fecha, int id)
    {        
        try {     
            java.sql.CallableStatement cs = con.prepareCall("{call IngresoHorario('" + Time.valueOf(Hora1) + "','" + Time.valueOf(Hora2) + "','" + Fecha + "','" + id + "' )}");
            java.sql.Statement stmt  = con.createStatement();
            java.sql.ResultSet rs = cs.executeQuery();
        } catch (SQLException ex) {
            Logger.getLogger(ProcsUsuarios.class.getName()).log(Level.SEVERE, null, ex);
        }
    }    
}
